/**
 * Clase PantallaSimulador: representa la interfaz grafica para interactuar con el servidor
 * bluetooth de simulacion
 */

package infbmobile.pantallas;

// Importaciones externas
import com.sun.lwuit.*;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.layouts.*;
import com.sun.lwuit.events.ActionListener;

// Importaciones internas
import infbmobile.main.*;
import infbmobile.bluetooth.*;
import infbmobile.util.UIHerramientas;

public class PantallaSimulador extends Form implements ActionListener {
    // Referencia al midlet principal
    public InfBMobile midlet;

    // Atributos de clase
    private TabbedPane panel;
    private Container c1,c2,c3;
    private TextField nivelAzucar,tempCorporal,ritmoCardiaco;
    private Command comandoEnviar;
    private Command comandoVolver;


    /*
     * Constructor principal de la clase
     */
    public PantallaSimulador(InfBMobile midlet) {
        super("Simulador Biometrico - HospiGest Pacientes");
        this.midlet=midlet;
        // Fijamos el layout del formulario
        setLayout(new BorderLayout());
        // Creamos los tres grandes contenedores (uno para cada parametro biometrico)
        c1=new Container();
        c2=new Container();
        c3=new Container();
        // Agregamos los elementos a cada uno de los contenedores
        nivelAzucar=new TextField();
        nivelAzucar.setConstraint(TextField.NUMERIC);
        c1.addComponent(new Label("Nivel de Azucar: "));
        c1.addComponent(nivelAzucar);
        tempCorporal=new TextField();
        tempCorporal.setConstraint(TextField.NUMERIC);
        c2.addComponent(new Label("Temperatura Corporal: "));
        c2.addComponent(tempCorporal);
        ritmoCardiaco=new TextField();
        ritmoCardiaco.setConstraint(TextField.NUMERIC);
        c3.addComponent(new Label("Ritmo Cardiaco: "));
        c3.addComponent(ritmoCardiaco);
        // Creamos el panel con tabs
        panel=new TabbedPane(TabbedPane.TOP);
        panel.addTab("Parametro 1",c1);
        panel.addTab("Parametro 2",c2);
        panel.addTab("Parametro 3",c3);
        // Agregamos el panel creado al centro del fomulario
        addComponent(BorderLayout.CENTER,panel);
        // Cargamos los comandos
        comandoVolver=new Command("Volver");
        addCommand(comandoVolver);
        comandoEnviar=new Command("Enviar");
        addCommand(comandoEnviar);
        setCommandListener(this);
    }

    public void actionPerformed(ActionEvent evento) {
        Object fuente=evento.getSource();
        // Obtenemos la pestaña actualmente mostrada
        int tab=panel.getSelectedIndex();
        // Recogemos de donde vino el evento
        if(fuente==comandoEnviar){
            HebraCliente hebraClienteBluetooth;
            try{
                if(tab==0){
                    // Midiendo el azucar
                   int medidaAzucar=(Integer.valueOf(nivelAzucar.getText())).intValue();
                   hebraClienteBluetooth=new HebraCliente(ParametrosBiometricos.NIVEL_GLUCOSA,medidaAzucar);
                }else if(tab==1){
                     // Midiendo la temperatura corporal
                   int medidaTemperatura=(Integer.valueOf(tempCorporal.getText())).intValue();
                   hebraClienteBluetooth=new HebraCliente(ParametrosBiometricos.TEMPERATURA_CORPORAL,medidaTemperatura);
                }else if(tab==2){
                    // Midiendo el ritmo cardiaco
                   int medidaRitmoCardiaco=(Integer.valueOf(ritmoCardiaco.getText())).intValue();
                   hebraClienteBluetooth=new HebraCliente(ParametrosBiometricos.RITMO_CARDIACO,medidaRitmoCardiaco);
                }
            }catch(NumberFormatException nfe){
                UIHerramientas.mostrarAviso("Error","Por favor, introduzca un valor numerico correcto");
            }
        }else if(fuente==comandoVolver){
            // Liberamos memoria
            System.gc();
            // Mostrar la pantalla del menu principal
             midlet.mostrarPantallaMenuPrincipal();
        }
    }

}
